#ifndef _BUFFER_H_
#define _BUFFER_H_
//
#include <stdlib.h>
#include <string>
//
class Buffer {
public:
	Buffer(void *data, size_t len);
	//
	Buffer(std::string& str, bool includeZero = false);
	//
	Buffer(std::wstring& str, bool includeZero = false);
	//
	size_t getLength();
	//
	void* getData();
	//
	Buffer& clone();
	//
	void clear();
	//
	~Buffer();
private:
	void*			_data;
	unsigned int	_len;
	Buffer();
	Buffer(const Buffer&);
	Buffer& operator = (const Buffer&);
	//
	void _init(void *data, size_t len);
};
#endif
